/**************************************************
|	File:		CFrames.h
|	Author:		Jake Elmi
|	Course:		SGP Mari's Flower
|	Purpose:	This class is in charge of the
|			    current frame and animation
**************************************************/
#pragma once

#define WIN32_LEAN_AND_MEAN
#include <string>
#include <Windows.h>
using namespace std;

class CFrames
{
	POINT ptAnchorPt;

	float fRenderRectX;
	float fRenderRectY;
	float fRenderRectWidth;
	float fRenderRectHeight;

	float fActiveRectX;
	float fActiveRectY;
	float fActiveRectWidth;
	float fActiveRectHeight;

	float fPassiveRectX;
	float fPassiveRectY;
	float fPassiveRectWidth;
	float fPassiveRectHeight;

	float fDuration;
	string sEvent;

public:
	CFrames(void);
	~CFrames(void);
	CFrames(const CFrames&);
	CFrames& operator = (const CFrames&);

	static CFrames* GetInstance(void);

	// Accessors
	POINT GetAnchorPt ( void ) { return ptAnchorPt; }

	float GetRenderRectX      ( void ) { return fRenderRectX;    }
	float GetRenderRectY      ( void ) { return fRenderRectY;    }
	float GetRenderRectWidth  ( void ) { return fRenderRectWidth;  }
	float GetRenderRectHeight ( void ) { return fRenderRectHeight; }

	float GetPassiveRectX       ( void ) { return fPassiveRectX; }
	float GetPassiveRectY       ( void ) { return fPassiveRectY; }
	float GetPassiveRectWidth   ( void ) { return fPassiveRectWidth; }
	float GetPassiveRectHeight  ( void ) { return fPassiveRectHeight; }

	float GetActiveRectX      ( void ) { return fActiveRectX; }
	float GetActiveRectY      ( void ) { return fActiveRectY; }
	float GetActiveRectWidth  ( void ) { return fActiveRectWidth; }
	float GetActiveRectHeight ( void ) { return fActiveRectHeight; }

	float GetDuration       ( void ) { return fDuration;      }
	string GetEvent			( void ) { return sEvent;		  }


	// Mutators
	void SetAchorPt           ( POINT pt ) { ptAnchorPt = pt ;        } 

	void SetRenderRectX      ( float rrx ) { fRenderRectX      = rrx; }
	void SetRenderRectY      ( float rry ) { fRenderRectY      = rry; }
	void SetRenderRectWidth  ( float rrw ) { fRenderRectWidth  = rrw; }
	void SetRenderRectHeight ( float rrh ) { fRenderRectHeight = rrh; }

	void SetActiveRectX        ( float arx ) { fActiveRectX      = arx; }
	void SetActiveRectY        ( float ary ) { fActiveRectY      = ary; }
	void SetActiveRectWidth    ( float arw ) { fActiveRectWidth  = arw; }
	void SetActiveRectHeight   ( float arh ) { fActiveRectHeight = arh; }

	void SetPassiveRectX      ( float crx ) { fPassiveRectX      = crx; }
	void SetPassiveRectY      ( float cry ) { fPassiveRectY      = cry; }
	void SetPassiveRectWidth  ( float crw ) { fPassiveRectWidth  = crw; }
	void SetPassiveRectHeight ( float crh ) { fPassiveRectHeight = crh; }

	void SetDuration      ( float d )  { fDuration = d;       }
	void SetEvent		  ( string e ) { sEvent = e;		  }

};